#ifndef __RULE_TRAITS_H__
#define __RULE_TRAITS_H__

#include <unordered_map>
#include <memory>
#include <list>

using StringList = std::list<std::string>;

enum class RuleKind{
	Labeled,
	NonLabeled,
};
struct BaseRuleInfor
{
	std::string ruleName;
	std::string ruleContextName;
	StringList locals;
	StringList ruleElementNames;
};

using RuleCollection = std::unordered_map<std::string, std::shared_ptr<BaseRuleInfor>>;

#endif // __RULE_TRAITS_H__